无穷和 NaN

您所在的位置:网站首页 matlab if 等于 无穷和 NaN

无穷和 NaN

2024-01-04 15:33| 来源: 网络整理| 查看: 265

无穷和 NaN无穷

MATLAB® 用特殊值 Inf 表示无穷。除以零和溢出等运算会生成无穷值,从而导致结果因太大而无法表示为传统的浮点值。MATLAB 还提供了一个称为 Inf 的函数,该函数以 double 标量值形式返回正无穷的 IEEE® 算术表示。

下面显示了在 MATLAB 中返回正无穷或负无穷值的多个语句示例。

x = 1/0 x = Inf

x = 1.e1000 x = Inf

x = exp(1000) x = Inf

x = log(0) x = -Inf

使用 isinf 函数验证 x 是否为正无穷或负无穷值:

x = log(0); isinf(x) ans = 1 NaN

MATLAB 使用一个称为 NaN(代表“非数字”)的特殊值来表示不是实数或复数的值。0/0 和 inf/inf 之类的表达式会生成 NaN,就像执行涉及 NaN 的任何算术运算一样:

x = 0/0 x = NaN

您也可以通过以下方式创建 NaN:

x = NaN; whos x Name Size Bytes Class x 1x1 8 double

NaN 函数将 NaN 的一个 IEEE 算术表示形式作为 double 标量值返回。此 NaN 值的按位十六进制精确表示形式为:

format hex x = NaN x = fff8000000000000

始终使用 isnan 函数来校验数组中的元素是否为 NaN:

isnan(x) ans = 1

MATLAB 保留其他 NaN 表示形式的“非数字”状态,并同等对待 NaN 的所有不同表示形式。但是,在某些特殊情形中(可能由于硬件限制),MATLAB 在整个计算过程中不保留其他 NaN 表示形式的精确位模式,而是使用上文定义的标准 NaN 位模式。

对 NaN 执行逻辑运算

由于两个 NaN 彼此不相等,因此与 NaN 相关的逻辑运算始终返回 false,但测试是否不相等 (NaN ~= NaN) 除外:

NaN > NaN ans = 0 NaN ~= NaN ans = 1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3